package VisualOperadores;

import java.util.ArrayList;

import Tela.AcaoPanelGrafo;
import Tela.ItemPGNoh;

public class AcaoPgPxC extends AcaoPanelGrafo {

	private ArrayList<String> operator;
	private ArrayList<String> selecao;

	public AcaoPgPxC() {
		operator = new ArrayList<String>();
		selecao = new ArrayList<String>();

	}

	public String executar(int x, int y) {
		ItemPGNoh noh = new ItemPGNoh(x, y, "P x C");
		getPanelGrafo().addItem(noh); // mudar para colocar o simbolo de produto
										// carteciano
		return null;
	}

	public void encerrar(int x, int y) {
		// nada a fazer aqui
	}

	public void mover(int x, int y) {
		// nada a fazer aqui
	}

	public void mudouAcao() {
	}

	public void setOperator(String strOperador) {
		this.operator.add(strOperador);
	}

	public void setSelecao(String strCondicao) {
		this.selecao.add(strCondicao);
	}

	public String getSelecao() {
		StringBuilder condicao = new StringBuilder();

		if (selecao != null) {
			for (String strCond : this.selecao) {
				condicao.append(" (" + strCond + ")  and ");
			}
			condicao.append(" 1=1");
		}

		return condicao.toString();
	}

	private String getOperadores() {
		StringBuffer strOperador = new StringBuffer();
		int count = 0;
		for (String operador : this.operator) {
			if (strOperador.length() == 0) {
				strOperador.append(" ( " + operador + " ) as operador" + count);
			} else {
				strOperador.append(", " + "( " + operador + ") as operador"
						+ count);
			}
			count++;
		}
		return strOperador.toString();
	}

	public String doSQL() {
		StringBuilder buffer = new StringBuilder();

		buffer.append("SELECT *");
		buffer.append(" FROM (" + this.getOperadores() + ") " + " WHERE "
				+ this.getSelecao());
		return buffer.toString();
	}

}
